# # 利用递归计算100的阶乘 100!
def f(n):
    if n <= 1:
        return 1
    else:
        return n*f(n-1) #100*f(99)  100*99*98*....*2*1



num = int(input('请输入一个正整数:')) # 输入一个100
s = f(num)
print(num, '的阶乘是: ', s) # 5*4*3*2*1=120


def sum(n):
    if n == 1:
        return 1
    else:
        return n+sum(n-1)



print('1~100相加的和为',sum(100))


# 计算斐波那契数列 F(0)=0,F(1)=1,F(n-1)+F(n-2)(n>=2)的第n项
def fibo(n):
    if n <= 2:
        return 1
    else:
        return fibo(n - 1) + fibo(n - 2)

print('斐波那契数列的第{}项为{}'.format(7, fibo(7)))

# # 匿名函数
# # <函数名>=lambda <参数列表>:<表达式>
# 使用匿名函数实现a+b+c
sum = lambda a, b, c: a+b+c
print(sum(1, 2, 3))


# 编写lambda函数,参数为正方形的边长m,输出正方形的面积。
fun = lambda m: m**2
print(fun(5))

